// 在此处写vuex相关内容
import Vue from 'vue';
import Vuex from 'vuex';
// 声明使用插件
Vue.use(Vuex);

// 用来存放公共数据 相当于组件data
const state = {
    num:0,
    str:'hanhan'
}
// getter 包含的是计算数据的对象
const getters = {
    // 判断num是奇数还是偶数
    evenOrOdd(){
        return state.num % 2 == 1 ?"奇数":"偶数"
    }

}
// mutations 直接更改state数据的方法
const mutations = {
    add(state){
        console.log(state);
        // console.log(str);
        state.num +=1;
    } ,   
    jian(state){
        state.num -= 1;
    }
}
// actions 间接更改state数据的方法 触发mutations进行更改
const actions = {
    oddAdd({state,commit}){
        
        if(state.num % 2 == 1){
            commit('add');
        }

    },
    evenJian({state,commit}){
        if(state.num % 2 == 0){
            commit('jian')
        }
    }
}

// 暴露store对象
export default new Vuex.Store({
    state,
    getters,
    mutations,
    actions
})